const utils = {

  /**
   * @function getClientConfig 得到client配置
   * @example  getClientConfig(db1) 则会将default和db1合并的配置结果
   * // 配置结构如下：
   * ``` json
   * {
   *  clients: {
   *    db1: {},
   *    db2: {}
   *  }
   *  default: {
   *    .....
   *  }
   * }
   * @param {String} clientName - 键值
   * @return {String} 配置结果
   * @api public
   */
  getClientConfig(config, clientName) {
    if (!config.clients) {
      return undefined;
    }

    let defaultConfig = config.default || {};
    let client = config.clients[clientName];
    if (!client) {
      return Object.assign({
        database: clientName
      }, defaultConfig);
    }
    if (!client.database) {
      client.database = clientName;
    }

    // 合并默认配置
    return Object.assign({}, defaultConfig, client);
  }
};

module.exports = utils;
